跳到主要内容

LOAD 和 UNLOAD 语句

您可以使用 LOAD 和 UNLOAD 语句来移动数据。LOAD 语句速度较快且较易于使用,但它只接受指定的数据格式。通常可将使用 UNLOAD 语句准备好的数据用于 LOAD 语句。

您可以使用 DB-Access 中的 UNLOAD 语句从表中将选定的行卸载到文本文件。

UNLOAD 语句允许您在卸载数据时对其进行操作,但它要求将数据卸载到磁盘上的文件而非磁带。如果卸载到磁盘文件,可能需要使用 UNIX™ 、Linux™实用程序将这些文件装入到磁带上。

要装入表,请使用 LOAD 或 dbload。要操纵正在装入的数据文件或在装入数据库时要对其进行访问,请使用 dbload 实用程序。尽可能使用 LOAD 语句,它比 dbload 要快。

UNLOAD 语句的语法

DB-Access 中的 UNLOAD 语句可从表中将选定的行卸载到文本文件。

元素用途重要注意事项
delimiter用作定界符的字符要求:请参阅定界符格式的语法
filename指定输入文件无。

此语法图仅用于快速参考。有关 UNLOAD 语句的语法和使用的详细信息,请参阅《GBase 8s SQL 指南:语法》。

LOAD 语句的语法

DB-Access 中的 LOAD 语句可将行附加到数据库的现有表中。

元素用途重要注意事项
column从 filename 接收数据的列的名称必须是指定表或视图中的列。
delimiter用作定界符的字符请参阅定界符格式的语法

此语法图仅用于快速参考。有关 LOAD 语句的语法和使用的详细信息,请参阅《GBase 8s SQL 指南:语法》。

支持多字节代码集语言环境的 load 和 unload 语句

对于支持多字节代码集的语言环境,确保接收字符数据的任何列的声明大小(以字节计)都足够存储整个数据字符串。

对于某些语言环境,对于最长的数据字符串,这可能需要最多达 4 倍的逻辑字符数。

用于非缺省语言环境和变量的 load 和 unload 语句

在非缺省语言环境中,装入或卸载 DATETIME 值的操作可能会受 GL_DATETIME、DBTIMEUSE_DTENV 环境变量设置的影响。

如果数据库使用非缺省的语言环境并且 GL_DATETIMEDBTIME 环境变量有非缺省的设置,那么必须先将 USE_DTENV 环境变量设置为值 1,然后才能正确处理本地化的 DATETIME 值。

  • 使用 DB-Access 的 LOAD 或 UNLOAD 语句

  • 使用 dbimportdbexport 实用程序

  • 对 CREATE EXTERNAL TABLE 语句定义的对象进行DML操作

支持多字符定界符

支持可将定界符设置为多个字符。用户在导入和导出数据时,可以在导入导出语句中设置DELIMITER定界符,也可以通过设置DBDELIMITER环境变量为多字符来实现。

使用DELIMITER子句可指定定界符,该定界符用于隔开包含在输入表中某一行中的每一列中的数据。可以指定水平制表符或空格(ASCII 32)作为定界符号。

定界符可以是单个字符或多个字符,但是字符个数不得超过 4 个。并且,不能包含下列项:

  • 反斜杠(\)
  • 十六进制数字(0 至 9、a 至 f、A 至 F)
  • 不可见字符(除空格、水平制表符之外的所有空白字符,包括换行符、换页符、回车符、垂直制表符)

如果省略此子句,则数据库服务器检查DBDELIMITER环境变量。如果尚未设置DBDELIMITER环境变量,则缺省的定界符是竖线(|)。

以下示例指定分号(;)作为定界符。该示例使用 Windows 文件命名约定。

LOAD FROM 'C:\data\loadfile' DELIMITER ';' INSERT INTO orders;

设置DBDELIMITER环境变量,可以指定与LOAD及UNLOAD和与DBEXPORT实用程序语句配合使用的字段定界符。

例如,要将字段定界符更改为两个加号,可按如下方式设置DBDELIMITER

EXPORT DBDELIMITER='++'